草庐IT

mysql - 每当我运行 rake db :migrate 时,Rails Schema 都会无意中更改

全部标签

ruby-on-rails - Ruby/Rails - 更改时间的时区,而不更改值

我在数据库中有一条记录foo,它具有:start_time和:timezone属性。:start_time是UTC时间-例如,2001-01-0114:20:00。:timezone是一个字符串-例如,America/New_York。我想创建一个值为:start_time但其时区由:timezone指定的新时间对象。我不想加载:start_time然后转换为:timezone,因为Rails会很聪明地从UTC更新时间以与该时区一致。目前,t=foo.start_time=>2000-01-0114:20:00UTCt.zone=>"UTC"t.in_time_zone("Americ

ruby-on-rails - 要更改 ruby​​ 脚本中的目录?

我想创建一个新的Rails应用程序并为该应用程序启动Rails服务器,一切都来自ruby​​脚本。我的代码是这样的:#!/usr/bin/envrubysystem"railsnewmy_app"system"cdmy_app"system"railsserver&"但是,当运行“railsserver&”时,路径不在my_app文件夹中,而是在父文件夹中。有没有办法在脚本中更改目录,以便我可以为新应用程序运行“railsserver”、“rakeabout”和“rakedb:migrate”?我们将不胜感激所有有关提示的工作。 最佳答案

ruby-on-rails - 更改 :id parameter in Routing resources for Rails 的名称

我四处查看如何更改动态参数槽,发现这篇文章完全符合要求。帖子是https://thoughtbot.com/blog/rails-patch-change-the-name-of-the-id-parameter-in基本上它所做的是,如果以下是路线:map.resources:clients,:key=>:client_namedo|client|client.resources:sites,:key=>:namedo|site|site.resources:articles,:key=>:titleendend这些路由创建以下路径:/clients/:client_name/cli

ruby - 我如何从 Capistrano 运行 rake 任务?

我已经有一个deploy.rb可以在我的生产服务器上部署我的应用程序。我的应用程序包含一个自定义rake任务(lib/tasks目录中的一个.rake文件)。我想创建一个cap任务来远程运行该rake任务。 最佳答案 更明确一点,在您的\config\deploy.rb中,在任何任务或命名空间之外添加:namespace:rakedodesc"Runataskonaremoteserver."#runlike:capstagingrake:invoketask=a_certain_tasktask:invokedorun("cd#{

ruby - 使用哈希默认值时出现奇怪的意外行为(消失/更改值),例如哈希.new([])

考虑这段代码:h=Hash.new(0)#Newhashpairswillbydefaulthave0asvaluesh[1]+=1#=>{1=>1}h[2]+=2#=>{2=>2}没关系,但是:h=Hash.new([])#Emptyarrayasdefaultvalueh[1]{1=>[1]}←Okh[2]{1=>[1,2],2=>[1,2]}←Whydid`1`change?h[3]{1=>[1,2,3],2=>[1,2,3]}←Whereis`3`?此时我希望散列为:{1=>[1],2=>[2],3=>[3]}但远非如此。发生了什么,我怎样才能得到我期望的行为?

ruby - 如何使用 RVM 更改我的 Ruby 版本?

我无法切换当前的Ruby版本:➜~rvmlistrvmrubiesruby-1.9.2-p290[x86_64]ruby-1.9.3-p0[x86_64]➜~rvmuseruby-1.9.3-p0RVMisnotafunction,selectingrubieswith'rvmuse...'willnotwork. 最佳答案 已修复。我需要添加:[[-s"$HOME/.rvm/scripts/rvm"]]&&."$HOME/.rvm/scripts/rvm"#ThisloadsRVM到.zshrc

ruby - 如何让 Sinatra 在每次更改后自动重新加载文件?

我正在使用#my_app.rbload'index.rb'然后像这样启动服务器rubymy_app.rb但它永远不会重新加载我在索引页面中所做的任何更改。我在这里错过了什么吗? 最佳答案 参见SinatraFAQ,"HowdoImakemySinatraappreloadonchanges?"Firstoff,in-processcodereloadinginRubyishardandhavingasolutionthatworksforeveryscenarioistechnicallyimpossible.Whichiswhyw

ruby - 如何更改哈希值?

我想用value.some_method替换散列中的每个value。例如,给定一个简单的散列:{"a"=>"b","c"=>"d"}`每个值都应该是.upcased,所以它看起来像:{"a"=>"B","c"=>"D"}我尝试了#collect和#map但总是只取回数组。有没有一种优雅的方式来做到这一点?更新该死,我忘了:散列在一个实例变量中,不应更改。我需要一个具有更改值的新散列,但不希望显式定义该变量然后循环填充它的散列。像这样的东西:new_hash=hash.magic{...} 最佳答案 my_hash.each{|k,v

ruby-on-rails - 如何在测试环境运行Rails控制台并加载test_helper.rb?

背景:我在使用Thoughtbot的“工厂女孩”gem时遇到了一些问题,该gem用于创建要在单元测试和其他测试中使用的对象。我想转到控制台并运行不同的FactoryGirl调用以检查发生了什么。例如,我想去那里做...>>Factory(:user).inspect我知道您可以在不同的环境中运行控制台...$脚本/控制台RAILS_ENV=test但是当我这样做时,工厂类不可用。看起来好像test_helper.rb没有加载。我尝试了各种require调用,包括一个带有到test_helper.rb的绝对路径的调用,但它们的失败与此类似:$script/consoleRAILS_ENV

ruby-on-rails - 如何让 Ruby/Homebrew/RVM 在 Yosemite 上运行?

安装Yosemite后,我无法运行brew或ruby​​。我在brewupdate上遇到这个错误:/usr/local/bin/brew:/usr/local/Library/brew.rb:/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby:badinterpreter:Nosuchfileordirectory/usr/local/bin/brew:line23:/usr/local/Library/brew.rb:Undefinederror:0在irb上得到这个错误:/System/Librar